package cn.seaboot.flake.where;

import cn.seaboot.commons.reflect.ObjectType;

/**
 * 逻辑关系
 */
public enum Logical {

    EQ(0), GT(1), LT(2), GE(3), LE(4), LIKE(5), BETWEEN(6);

    /**
     * 码值
     */
    private final int value;

    Logical(int value) {
        this.value = value;
    }

    /**
     * 返回码值
     *
     * @return 码值
     */
    public int value() {
        return value;
    }


    /**
     * 获取一个对象的类型
     *
     * @param obj 全对象
     * @return ObjectType
     */
    public static ObjectType of(Object obj) {
        return ObjectType.of(obj.getClass());
    }

    /**
     * 根据码值返回类型
     *
     * @param value 码值
     * @return ObjectType
     */
    public static ObjectType valueOf(int value) {
        return ObjectType.values()[value];
    }
}
